package br.edu.universo.si.projeto2.infojob.client.componentes.comboboxes;

import java.util.HashMap;
import br.edu.universo.si.projeto2.infojob.client.util.Util;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.ListBox;

/**
 * COMPONENTE - combobox que contem os Estados brasileiros
 * @author Andrey A. de Oliveira
 * @since 03/09/2008
 */

public class EstadosListBox extends ListBox
{
	private Integer indice = 0;
	private Boolean callback = false;
	public EstadosListBox()
	{
		super(false);
		this.setWidth("200px");
		this.addItem("", "");
		
		AsyncCallback<HashMap<Integer, String>> callback = new AsyncCallback<HashMap<Integer, String>>()
		{
			public void onSuccess(HashMap<Integer, String> result)
			{
				// insere os estados na ListBox
				for (int x = 1; x <= result.size(); x++)
				{
					EstadosListBox.this.addItem(result.get(x), Integer.toString(x));
				}
				//Seta o indice correto no listbox
				EstadosListBox.this.setSelectedIndex(EstadosListBox.this.getIndice());
				EstadosListBox.this.setCallback(true);				
				
			}

			public void onFailure(Throwable caught) { }
		};

		Util.getService().getEstados(callback);
	}
	public void setIndice(Integer indice) {
		this.indice = indice;
	}
	public Integer getIndice() {
		return indice;
	}
	public void setCallback(Boolean callback) {
		this.callback = callback;
	}
	public Boolean getCallback() {
		return callback;
	}
	public void atualiza(){
		if (callback) {
			EstadosListBox.this.setSelectedIndex(getIndice());
		}
	}
}